Some of the computer systems used today include a plurality of computers hierarchically organized to share the processing workload. Computer systems of this type are called “multi-tier systems.” The computers constituting a multi-tier system are referred to herein as “servers.” A known example of such multi-tier systems is a three-tier system which is formed from web servers to provide user interfaces, application servers to execute transactions, and database servers to manage datasets. Those servers work together to execute processing requests received from users and return the results back to the users. In this way, multi-tier systems allot a given work to a plurality of servers, so that the system workload can be distributed among them. Multi-tier systems also permit their reliability and responsiveness to be improved by deploying an adequate number of computers in each tier as necessary.
In a multi-tier system such as the web three-tier system mentioned above as a representative example, the end user may experience a slow system response due to some problem in a server. In such situations, it would be an important first step of troubleshooting to determine in which tier the problem lies. One of the methods commonly used for this purpose is to measure the processing times of servers on each tier and track their changes over time to detect problems.
For example, Japanese Laid-open Patent Publication No. 2006-11683 proposes a technique that creates transaction models, collects communication messages via a switch, and detects a series of messages whose progress matches with one of the transaction models. This technique makes it possible to identify a set of messages constituting a specific transaction and analyze the identified transaction. For example, the proposed technique enables tracking of processing operations that each application executes in response to a user request and continues until a response is returned.
The conventional method discussed above can be used to grasp the information on processing times spent by a server under analysis, but does not help in determining whether the server still has some headroom left in its processing capacity.